﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

/*
 * 

上位机设定气象站参数,气象站接收
第01字节：帧头（53H：S）
第02字节：帧长（0EH）
第03字节：ID（00H）
第04字节：等待超时时间低字节
第05字节：等待超时时间高字节
第06字节：自动广播间隔时间低字节
第07字节：自动广播间隔时间高字节
第08字节：雨雪确认时间低字节
第09字节：雨雪确认时间高字节
第0A字节：风速上限值低字节
第0B字节：风速上限值高字节
第0C字节：风速确认时间低字节
第0D字节：风速确认时间高字节
第0E字节：校验字节（0AAH）。

*/
namespace ASoft.Msg
{
    [Msg(0x53, 0x0E, 0xAA)]
    [DataContract]
    [MsgVM]
    [RecordTypeAttribute(ERecordType.WeatherStationSetMsg)]
    public class WeatherStationSetMsg : MsgBase
    {
        public WeatherStationSetMsg() : base() { }

        public WeatherStationSetMsg(byte[] data) : base(data) { }

        [SP(0x03, true)]
        public byte Id { get { return 0x00; } }

        [DataMember]
        [DP(0x04, 0x05)]
        public short 等待超时时间 { get; set; }

        [MsgVM]
        public string 等待超时时间字符串
        {
            get
            {
                return AppUtility.ConvertShortToTimeString(等待超时时间);
            }
            set
            {
                等待超时时间 = AppUtility.ConvertTimeStringToShort(value);
            }
        }

        [DataMember]
        [DP(0x06, 0x07)]
        public short 自动广播间隔时间 { get; set; }

        [MsgVM]
        public string 自动广播间隔时间字符串
        {
            get
            {
                return AppUtility.ConvertShortToTimeString(自动广播间隔时间);
            }
            set
            {
                自动广播间隔时间 = AppUtility.ConvertTimeStringToShort(value);
            }
        }

        [DataMember]
        [DP(0x08, 0x09)]
        public short 雨雪确认时间 { get; set; }

        [MsgVM]
        public string 雨雪确认时间字符串
        {
            get
            {
                return AppUtility.ConvertShortToTimeString(雨雪确认时间);
            }
            set
            {
                雨雪确认时间 = AppUtility.ConvertTimeStringToShort(value);
            }
        }

        [MsgVM]
        [DataMember]
        [DP(0x0A, 0x0B)]
        public short 风速上限值 { get; set; }

        [DataMember]
        [DP(0x0C, 0x0D)]
        public short 风速确认时间 { get; set; }

        [MsgVM]
        public string 风速确认时间字符串
        {
            get
            {
                return AppUtility.ConvertShortToTimeString(风速确认时间);
            }
            set
            {
                风速确认时间 = AppUtility.ConvertTimeStringToShort(value);
            }
        }
    }
}
